<?php

class Lang {
	static $langPath = '/core/lang/',
		$langTemplates = array();
	/**
	*	Инициализация массива языковых шаблонов
	*/
	static function init( $lang ){
		$langFile = _DOCUMENT_ROOT.self::$langPath.$lang.'.php';
		if( file_exists($langFile) && is_file($langFile) ){
			include $langFile;
			self::$langTemplates = $langTemplates;
		} else {
			$ermess = 'Language Module "'.$langFile.'" doesn\'t exists';
			DebugModule::log( E_WARNING, $ermess, __FILE__, __LINE__);
		}	
	}
	
	/**
	*	get
	*
	*	Получение строки из массива языковых шаблонов
	*	@param	string $templateKey - ключ в массиве шаблонов
	*	@param	array $replaceArray - массив подшаблонов ключ=значение_для_замены
	*	@return	string  - готовая строка
	*/
	static function get( $templateKey, $replaceArray=NULL ){
		if( count(self::$langTemplates)<1 ) self::init(); 
		if( count(self::$langTemplates)>0 ) {			
			if(array_key_exists( $templateKey,self::$langTemplates )){
				$mess = self::$langTemplates[ $templateKey ];
				if(!is_null($replaceArray)){
					$patterns = array_keys($replaceArray); 
					$replacements = array_values($replaceArray);
					$mess = str_replace($patterns, $replacements, $mess );
				}			
			} else {
				$ermess = Lang::get( '{KEY}_DOESNT_EXISTS', array('{KEY}'=>$templateKey) );
				$errn = Debug::log( E_WARNING, $ermess, __FILE__, __LINE__); 
				$mess = '<b style="color:red">'.$errn.' WARNING!</b>';
			}
			return $mess;
		}
	}

	static function getAll(){
		if( count(self::$langTemplates)<1 ) self::init(); 
		return self::$langTemplates;
	}

}
?>